package org.easy.tool.service;

import org.easy.tool.entity.Problem;
import org.easy.tool.entity.UserProblem;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 *  服务类
 * @author Valley
 * @since 2023-08-25 14:20:43
 */
public interface IUserProblem extends IService<UserProblem> {

    /**
     * 功能：根据用户id和题目id查询当前关联类
     */
    UserProblem getUserProblemById(String userId, String problemId);

    /**
     * 功能：新增用户题目关联
     */
    String addUserProblem(UserProblem userProblem);

    /**
     * 功能：获取当前用户所有的题目
     */
    List<UserProblem> getUserProblemList(String userId);

    /**
     * 功能：移除当前用户题目
     */
    void removeUserProblem(String userId, String problemId);

    /**
     * 功能：某个用户题目总计数量
     */
    int countTotal(String userId, String problemId);

    /**
     * 功能：某个用户题目正确数量
     */
    int countRight(String userId, String problemId);

    /**
     * 功能：某个用户题目错误数量
     */
    int countWrong(String userId, String problemId);

    /**
     * 功能：获取用户全部答题数量
     */
    int countTotal(String userId);

    /**
     * 功能：用户正确总数
     */
    int countRight(String userId);

    /**
     * 功能：用户错误总数
     */
    int countWrong(String userId);

    /**
     * 功能：随机抽取一个用户题目
     */
    Problem randomUserProblem(String userId);

    /**
     * 功能：用户做某道题的正确率
     */
    double getUserProblemRightRate(String userId, String problemId);

}
